package io.wdb.modules.generator.generator.service.client;

import java.util.List;

import io.wdb.common.utils.Query;
import io.wdb.modules.generator.generator.entity.AccountCreditEntity;
import io.wdb.modules.generator.generator.entity.BookEntityEntity;
import io.wdb.modules.generator.generator.entity.UserPointEntity;
import io.wdb.modules.generator.generator.entity.customer.AccountCreditLogEntityCustomer;
import io.wdb.modules.generator.generator.entity.customer.BookEntityCustomer;
import io.wdb.modules.generator.generator.entity.customer.BookMaintainLogEntityCustomer;
import io.wdb.modules.generator.generator.entity.customer.OrderTransEntityCustomer;
import io.wdb.modules.generator.generator.entity.customer.UserInfoEntityCustomer;
import io.wdb.modules.generator.generator.entity.customer.UserPointLogEntityCustomer;
import io.wdb.modules.generator.generator.entity.web.WebResponse;

public interface ClientManagerService {

	List<UserInfoEntityCustomer> queryList(Query query);

	void updatePointValue(UserInfoEntityCustomer userInfoEntityCustomer);

	void updateCreditValue(UserInfoEntityCustomer userInfoEntityCustomer);
	
	UserPointEntity getUserPoint(Long userId);
	
	AccountCreditEntity getUserCredit(Long userId);

	int updateUserInfo(UserInfoEntityCustomer userInfoEntityCustomer);

	WebResponse insertUser(UserInfoEntityCustomer userInfoEntityCustomer);

	List<BookMaintainLogEntityCustomer> queryMainTainListByUserId(Query query);

	int queryMainTainListTotal(Query query);

	int queryListTotal(Query query);

	List<OrderTransEntityCustomer> queryCurrentBorrowBooks(Query query);

	List<UserPointLogEntityCustomer> queryPointRecord(Query query);

	List<AccountCreditLogEntityCustomer> queryCreditRecord(Query query);

	WebResponse cancelBook(BookEntityCustomer bookEntityEntity); 
}
